// pages/user/login.js
const userManager = require('../../utils/userManager');
const api = require('../../utils/api');

Page({
  data: {
    isAgree: false,
    redirectUrl: '',
    loading: false
  },

  onLoad: function(options) {
    // 获取重定向URL
    if (options.redirect) {
      this.setData({
        redirectUrl: decodeURIComponent(options.redirect)
      });
    }
  },
  
  // 切换协议同意状态
  onTapAgree: function() {
    this.setData({
      isAgree: !this.data.isAgree
    });
  },
  
  // 查看用户协议
  onTapViewAgreement: function() {
    wx.navigateTo({
      url: '/pages/user/agreement'
    });
  },
  
  // 查看隐私政策
  onTapViewPrivacy: function() {
    wx.navigateTo({
      url: '/pages/user/privacy'
    });
  },
  
  // 获取手机号
  onGetPhoneNumber: function(e) {
    // 检查用户是否同意协议
    if (!this.data.isAgree) {
      wx.showToast({
        title: '请先同意用户协议和隐私政策',
        icon: 'none'
      });
      return;
    }
    
    if (e.detail.errMsg !== 'getPhoneNumber:ok') {
      wx.showToast({
        title: '获取手机号失败，请重试',
        icon: 'none'
      });
      return;
    }
    
    // 显示加载中
    this.setData({ loading: true });
    wx.showLoading({
      title: '登录中...'
    });
    
    // 调用登录接口
    userManager.loginWithPhone(e.detail)
      .then(userInfo => {
        wx.showToast({
          title: '登录成功',
          icon: 'success'
        });
        
        // 登录成功后跳转
        setTimeout(() => {
          this.navigateAfterLogin();
        }, 1500);
      })
      .catch(err => {
        wx.showToast({
          title: err.message || '登录失败，请重试',
          icon: 'none'
        });
      })
      .finally(() => {
        this.setData({ loading: false });
        wx.hideLoading();
      });
  },
  
  // 登录后导航
  navigateAfterLogin: function() {
    if (this.data.redirectUrl) {
      wx.redirectTo({
        url: this.data.redirectUrl,
        fail: () => {
          // 如果重定向失败（可能是tabBar页面），则回到首页
          wx.switchTab({
            url: '/pages/index/index'
          });
        }
      });
    } else {
      // 没有重定向信息，返回上一页
      wx.navigateBack({
        fail: () => {
          // 如果返回失败，则回到首页
          wx.switchTab({
            url: '/pages/index/index'
          });
        }
      });
    }
  }
})